#include "processBar.h"
#include<string.h>
#include<unistd.h>

const char *str="|/-\\";
//创建一个全局的字符串数组用来表示进度条
char bar[NUM];

//v2版本的进度条（如何被调用的）
void processBar(int rate){
    //先判断进度是否越界
    if(rate<0||rate>100){
        return;
    }

    int len=strlen(str);

    printf("[%-100s][%d%%][%c]\r",bar,rate,str[rate%len]);

    //打印后刷新标准输出流
    fflush(stdout);
    bar[rate++]=BODY;
    if(rate<100){
        bar[rate]=RIGHT;
    }
}



//v1版本的进度条（简单实现）
//void processBar(int sleed){
//    //创建一个字符数组用来表示进度条
//    char bar[NUM];
//    //先将字符数组全部初始化为空
//    memset(bar,'\0',sizeof(bar));
//
//    int len=strlen(str);
//
//    int cnt=0;
//
//    while(cnt<=TOP){
//        //因为没有'\n'换行，导致打印后没有立即刷新标准输出流，显示器模式是行刷新
//        printf("[%-100s][%d%%][%c]\r",bar,cnt,str[cnt%len]);
//
//        //刷新标准输出流
//        fflush(stdout);
//        bar[cnt++]=BODY;
//        if(cnt<100){
//            bar[cnt]=RIGHT;
//        }
//
//        usleep(sleed);
//    }
//    printf("\n");
//    
//}
